

                  Formalization of proofs by logical relations

                                    Appendix

                              Ulrik Terp Rasmussen
                                  June 6, 2013

                                       --


This archive contains the technical appendix to my Master's Thesis. The appendix
is structured as follows:


 - term1/
 - term2/
 - term3/

   Contains the formalization of all proofs from Chapter 1: Termination for
   call-by-name simply typed lambda calculus. Each folder represents incremental
   changes to the object language. `term1' thus corresponds to STLC with only
   booleans, `term2' to STLC with an added `if'-construct, and `term3' to STLC
   with numerals and case.


 - eq-cbn/

   Contains the formalization of all proofs from Chapter 3: Equational reasoning
   for call-by-name simply typed lambda calculus.  Note that this formalization
   also includes an extra `flip' construct in the object language, which is not
   present in the report. The construct models a non-deterministic choice, but
   was removed from the report. The extra construct does not affect the rest of
   the formalization, though.


 - eq-cbv/

   Contains the formalization of all proofs from Chapter 4: Equational reasoning
   for call-by-value simply typed lambda calculus.


 - contextsep-direct/

   A direct proof of soundness of axiomatic equivalence for a very simple
   language. That is, we do not translate the axiomatic equivalence judgment to
   one with separated contexts, but instead perform the proof with an overly
   complicated induction hypothesis. Nobody would probably want to do this, but
   the formalization is interesting in itself.